<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>

<body>

</body>

</html>

<script>
    // this不同调用所引用的引用对象
    // 函数的调用方式           this引用的引用对象
    // 构造函数调用   --------> 所生成的对象
    // 方法调用      -------->  接收方的对象
    // apply或者call调用-------->有apply或call的参数指定的对象
    // 其他方式调用  ---------->全局对象


    var obj = {
        x: 3,
        doit: function () {
            console.log("method is called." + this.x)
        }
    }
    obj.doit()
    obj['doit']()
    var fn = obj.doit
    fn()
    var x = 5
    fn()
    var obj2 = {
        x: 2,
        doit2: obj.doit
    }
    obj2.doit2()

    var obj3 = {
        x: 11,
        doit: function () {
            console.log("doit is called." + this.x);
            this.doit2()
        },
        doit2: function () {
            console.log("doit2 is called." + this.x)
        }
    }
    obj3.doit()
</script>